On Enhancing Concurrency in Distributed Software Transactional Memory
نویسندگان
چکیده
Distributed software transactional memory (STM) promises to alleviate difficulties with lockbased (distributed) synchronization and object performance bottlenecks in distributed systems. The existing distributed STM model based on globally-consistent contention management policies may abort many transactions that could potentially commit without violating correctness. To reduce unnecessary aborts and increase concurrency, we propose the distributed dependencyaware (DDA) model for distributed STM, which adopts different conflict resolution strategies based on the types of transactions.In the DDA model, read-only transactions never abort by keeping a set of versions for each object. Each transaction only keeps precedence relations based on its local knowledge of precedence relations.The DDA model that, when a transaction reads from or writes to an object based on its local knowledge, the underlying precedence graph remains acyclic. We propose starvation-free multi-version (SF-MV)-permissiveness, which ensures that: 1) read-only transactions never abort; and 2) every transaction eventually commits. The DDA model satisfies SF-MV-permissiveness with high probability. We present a set of algorithms to support the DDA model, prove its correctness and permissiveness, and show that is supports invisible reads and efficiently garbage collects useless object versions. Our experimental results show that the DDA model outperforms existing contention management policies by 30%-40% in average in high contention environments.
منابع مشابه
Enhancing Concurrency in Distributed Transactional Memory through Commutativity
Distributed software transactional memory is an emerging, alternative concurrency control model for distributed systems promising to alleviate the difficulties of lock-based distributed synchronization. We consider the multi-versioning (MV) model to avoid unnecessary aborts. MV schemes inherently guarantee commits of read-only transactions, but limit the concurrency of write transactions. In th...
متن کاملOn Open Nesting in Distributed Transactional Memory: Technical Report
Distributed Transactional Memory (DTM) is a recent but promising model for programming distributed systems. It aims to present programmers with a simple to use distributed concurrency control abstraction (transactions), while maintaining performance and scalability similar to distributed fine-grained locks. Any complications usually associated with such locks (e.g., distributed deadlocks) are a...
متن کاملSupporting STM in Distributed Systems: Mechanisms and a Java Framework
We present HyFlow — a distributed software transactional memory (D-STM) framework for distributed concurrency control. Lockbased concurrency control suffers from drawbacks including deadlocks, livelocks, and scalability and composability challenges. These problems are exacerbated in distributed systems due to their distributed versions which are more complex to cope with (e.g., distributed dead...
متن کاملSnake: Control Flow Distributed Software Transactional Memory
Remote Method Invocation (RMI), Java’s remote procedure call implementation, provides a mechanism for designing distributed Java technology-based applications. It allows methods to be invoked from other Java virtual machines, possibly at different hosts. RMI uses lockbased concurrency control, which suffers from distributed deadlocks, livelocks, and scalability and composability challenges. We ...
متن کاملOn Safety of Replicated Transactional Memory
Transaction Memory (TM) is a concurrency control abstraction that allows the programmer to specify blocks of code to be executed atomically. In this paper, we consider a distributed variant of TM in which transactional memory is consistently replicated on network nodes for greater availability and fault-tolerance. We argue that opacity, a standard TM safety property, is misused when applied to ...
متن کامل